As computer networks have become more and more extensive, the challenges associated with maintenance and control of such networks have become exponentially larger. In a typical setting, the operators of computer stations are not the same people as those who maintain the computer hardware and software. In the case of computer server hardware, there are no explicit operators, in the sense that computer servers are not used directly by users to do their work. Instead, users typically do their work at one of many computers connected to the server. Thus, in the case of computer servers, the servers are only used directly when maintenance is being performed on the server. As computer networks have become larger, it has become necessary to have specialized groups of people responsible for maintenance of computer equipment, including servers.
Maintenance of computers takes a number of forms. For example, it involves fixing computer equipment after it has failed. However, in an attempt to reduce downtime, many owners of computer networks have taken a preventative approach to maintenance. Preventative maintenance includes monitoring for problems, solving problems after they are detected, and deploying upgrades to prevent future problems. Maintenance may also include the adding of features, applications and data to the computer.
The increased size of computer networks has also led to a change in the physical arrangement of networks, and the way they are communicated with by maintenance personnel. Often, computer networks are very large, and may include hundreds or even thousands of servers located in separate server rooms far removed from the location of maintenance personnel. Therefore, direct use of the servers by maintenance personnel is impractical. Furthermore, even if the maintenance personnel are on location, it is impractical for them to conduct maintenance activities on hundreds or thousands of target computer servers by moving physically from one server to the next.
One basic requirement for maintenance personnel, in accomplishing their task of monitoring the target computers, is that the status information being monitored be made available to the maintenance personnel. There are two main categories of target computers that maintenance personnel would typically monitor. The first consists of computers that are primarily based on a graphical interface, and the second consists of computers that are primarily based on a command line interface. In graphical interface-based computers, such as those using the Windows™ operating system, the system information is available as a graphical display on the target computer's screen. Therefore, to have this information, maintenance personnel at a remote location must have access to the target computer's video in order to monitor the target computer.
In command line-based computers, such as those using Unix™ or Unix-derivative operating systems, a log file is generally available with periodic status reports. This log file would be available to a local user of a computer and could be displayed on the screen. For maintenance personnel to monitor such a computer, they need to have access, at the remote location, to this log file.
In addition, maintenance personnel must be able to choose among various types of information available from the target computer in order to monitor effectively. This involves the maintenance personnel having access to the standard input devices of the target computer. Typically, the standard input devices are the keyboard and mouse, but they may also include such items as graphic tablets and serial console ports.
Conducting maintenance activities involving upgrades also requires control of the target computer. This includes having access to the screen shot or log file, and the standard input and output devices of the computer. It is also necessary for maintenance personnel to have access to the media on which the upgrade information are stored. If the medium is, for example, a CDROM or floppy disk, the maintenance personnel have historically needed to be physically present at the target computer to insert the CDROM and swap CDROMs as required.
In the past, to provide the necessary access for maintenance personnel to the target computers, “KVM” switches were developed. “KVM” stands for Keyboard Video and Mouse. The purpose of a KVM switch is to provide remote access to a target computer.
Early KVM switches were analog, connecting one or more target computers and one or more remote users. This would allow a remote user to select, usually by moving a mechanical switch, which target computer's keyboard, video and mouse he would have access to.
Analog KVM switches can be relatively inexpensive. As well, their “perceived performance” can be quite good, meaning that a user accessing a target computer from a remote location from an analog KVM switch will have an experience very similar to the experience he would have if he were using the target computer directly. However, analog KVM switches have a number of disadvantages. Very basic analog KVM switches require the operator to be co-located with the target computers. In other words, if a user wishes to have access to eight different computers through a basic analog KVM switch, he must be co-located with those eight computers, and can access each one in turn by actuating the switch. To use analog KVM switches in circumstances where the user is located remotely from the target computers, analog KVM extenders are required. However, even analog KVM extenders often place strict constraints on the physical distance between the user the target computers. Such extenders typically require that the user be located within 300 meters of the target computers.
Another disadvantage of analog KVM switches is that they are not easily scalable. In other words, creating networks of KVM switches, and adding additional target and remote computers to that network is difficult, usually resulting in escalating costs and reduced performance. U.S. Pat. Nos. 5,721,842; 5,884,096; 5,937,176; 6,378,009; and 6,388,658 disclose various analog KVM switches and extenders having these disadvantages.
Another related problem with analog KVM switches is that if the remote site is far removed from the target site, the receiver of the KVM switch must be hand-tuned for optimal video performance. Without such hand tuning, the video quality at the remote computer suffers, resulting in an lower-than-optimal perceived performance. The requirement of hand-tuning makes the installation of a network of analog of KVM switches cumbersome and expensive.
Subsequent to the development of analog KVM switches, digital KVM switches were developed. A digital KVM switch is typically connected on one side to a target computer. The other end of the switch is connected to a LAN port, and ultimately to the internet or another network. The remote computers receive the target video, and transmit keyboard and mouse signals, over that network. Unlike the analog approach to switching video, keyboard and mouse information, the digital KVM digitizes the video received from the target computer, and then transmits it to the remote computer via the LAN link.
Digital KVMs may also be attached to multiple target computers via an analog KVM switch. This allows the digital KVM switch to access more than one target computer. In some products, the digital KVM and analog KVM are integrated into the same unit.
A typical digital KVM switch consists of an analog-to-digital converter (ADC) for capturing the target's video signal and converting it to digital format; a frame storage device, sometimes referred to as a “frame grabber”; and a CPU. U.S. Pat. No. 6,539,418 discloses a KVM switch with these general features.
A typical target computer puts out a video signal containing a very large amount of raw data. A typical video resolution is 1024 pixels per horizontal video line, with 768 lines per video frame and 60 complete frames transmitted per second. Each pixel on a colour monitor may have a red component, a green component and a blue component. Most computers use 8 bits of information for each of these components, resulting in a 24-bit colour word representing each pixel. In this example, then, the target video signal consists of 1,132,462,080 bits per second (1.132 gigabits). This bit rate is substantially higher than the capacity of any practically-available LAN connection. As a result, digital KVM devices typically use some form of video data reduction technology. One approach is to compare successive video frames and extract pixel differences between successive frames. This uses far less bandwidth then transmitting every whole new frame to the remote computer. In one typical difference calculation method, the digital KVM switch captures an entire video frame. After the entire new video frame is captured, each pixel is compared with the corresponding pixel in the previous video frame. Once all the pixel changes have been determined, the differences between the new frame and the previous frame are sent to the remote computer, and the video on the remote computer is updated to match the new frame that has been received from the target computer.
There are different ways to update the remote or control computer. One is to update each individual pixel that has changed from the reference (i.e. previous) frame to the new frame. Another is to update an entire sub-block of the target computer's screen if any pixel within that sub-block has changed between the reference frame and the new frame. In some applications, the update units are 16-pixel by 16-pixel sub-blocks, because this is the size of block used by the public domain VNC protocol for transmitting video.
A typical video signal has a particular predetermined resolution which specifies the number of pixels per line, and the number of lines per video frame. In the analog domain, each line of video has an active area, where the actual screen picture information is contained, and a blanking area, usually represented in the colour black. The blanking area is added to each line to provide the extra time between lines for re-positioning the scanning electron beams that create the image on the screen. The blanking area at the end of each line also contains a horizontal-sync or H-sync signal pulse, which the monitor uses to determine when the electron beam should realign itself. Similarly, the video frame as a whole has an active area and a blanking area containing lines not included in the active video region. The vertical-sync or V-sync pulse is transmitted within this blanking area. This pulse is used by the CRT to cause the electron beam to move back to the beginning of the frame. The time between successive H-sync pulses is arbitrary, but will be constant for a particular implementation of a particular video rate or resolution.
With digital KVM, the ADC of the KVM must extract each pixel from the analog video signal's waveform. This is accomplished by sampling. Ideally, sampling will take place at the precise center of the time allocated to each pixel. The pixels are located for sampling with reference to the sync pulses. In particular, there is typically associated with the ADC a phase-locked loop (PLL) that uses the information from the H-sync and V-sync signals to recreate the sampling clock (also called the pixel clock) of the analog video.
Analog signals are continuous and varying, and as such, are susceptible to additive noise. When such a signal is digitized, the noise is digitized along with the ideal analog signal. The result is that the noise manifests itself as a slight change in the digital information, even if the analog information is intended to be static. Thus, in the present application, the value of a particular pixel may not have actually changed between the reference frame and the new frame, but may appear to have changed because of additive noise. In such a case, the typical difference-detecting and generating algorithm would detect a change from the reference frame to the new frame, and would transmit these changes to the remote computer. Since the underlying analog video screen was intended to be static (i.e. unchanged from one frame to the next), these extra transmissions have no purpose, but create unnecessary traffic in the overall system, resulting in slower response times and a less smooth motion on the video screen of the remote computer.
There have been attempts in the past to improve the situation by reducing the effect of noise on the digitized video. Specifically, the typical approach has been to pass the analog video through a low pass filter. However, this can have a deleterious effect on the signal, because the video signal typically includes substantial high frequency components which will be filtered out by the low pass filter, thus smoothing out the edges of the signal. As a result, high frequency information, such as text, gets blurred.
A related problem is caused by jitter in the H-sync. Typically, the PLL will use the rising edges of the H-sync pulses to generate a sampling clock. However, if the pulse jitters, causing it to begin sooner or later than intended, the PLL will generate a misaligned sampling clock that samples away from the middle of each of the pixels. Excessive jitter in the H-sync signal will translate into excessive misalignment in the pixel sampling clock. The result will be that the sampling clock may be so misaligned as to sample on the transition between pixels, rather than on the pixel itself. This can change the sampled value significantly from the correct valve. Thus, misalignment may also cause it to appear as if changes in the target computer's video information have taken place, when, in fact, none have.